const db = require('../db/index')
const bcrypt = require('bcryptjs')
const jwt = require("jsonwebtoken")
const config = require("../config.js")
// 导入处理路径的 path 核心模块
const path = require('path')


//获取公司名称
exports.getCorporateName = (req, res) => {
  const sql = "select * from setting where set_name = ?";
  db.query(sql, req.query.name, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    // 执行 SQL 语句成功，但是影响行数不等于 1
    if (results.length !== 1) return res.cc('查询失败！');
    res.send({
      // 状态
      status: 0,
      message: '获取数据成功',
      data: results[0]
    })
  })
}

//修改公司名称
exports.changeCorporateName = (req, res) => {
  const sql = "update setting set set_value=? where set_name = '公司名称'";
  db.query(sql, req.body.content, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    // 执行 SQL 语句成功，但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.cc('修改失败！')
    res.cc('修改成功', 0)
  })
}

//获取公司详情
exports.getCorporateInfo = (req, res) => {
  const sql = "select * from setting where set_name = ?";
  db.query(sql, req.query.name, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    // 执行 SQL 语句成功，但是影响行数不等于 1
    if (results.length !== 1) return res.cc('查询失败！');
    res.send({
      // 状态
      status: 0,
      message: '获取数据成功',
      data: results[0]
    })
  })
}

//获取公司详情
exports.getAllCorporate = (req, res) => {
  const sql = "select * from setting where set_name like '公司%' and set_name != '公司名称'";
  db.query(sql, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    res.send({
      // 状态
      status: 0,
      message: '获取数据成功',
      data: results
    })
  })
}

exports.setCorporateInfo = (req, res) => {
  const sql = "update setting set set_text=? where set_name =? ";
  db.query(sql, [req.body.content, req.body.name], (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    // 执行 SQL 语句成功，但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.cc('修改失败！')
    res.cc('修改成功', 0)
  })
}
// 获取轮播图
exports.getSwiper = (req, res) => {
  const sql = "select * from setting where set_name like 'swiper%' ";
  db.query(sql, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);

    res.send({
      // 状态
      status: 0,
      message: '获取数据成功',
      data: results
    })
  })
}



exports.setSwiper = (req, res) => {
  // return console.log(req.file);
  // 手动判断是否上传了文章封面
  if (!req.file || req.file.fieldname !== 'imageUrl') return res.cc('头像是必选参数！')
  const sql = `update setting set set_value = ? where set_name = ?`;
  let filename = path.join('/uploads', req.file.filename)

  // 执行 SQL 语句
  db.query(sql, [filename, req.body.name], (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err)

    // 执行 SQL 语句成功，但是影响行数不等于 1
    if (results.affectedRows !== 1) return res.cc('头像设置失败！')


    // res.cc('', 0)
    res.send({
      // 状态
      status: 0,
      message: '头像设置成功',
      data: path.join('/uploads', req.file.filename)
    })
  })
}



// 获取部门列表
exports.getDepartment = (req, res) => {
  const sql = "select * from department";
  db.query(sql, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    res.send({
      // 状态
      status: 0,
      message: '获取数据成功',
      data: results
    })
  })
}

// 增加部门
exports.addDepartment = (req, res) => {
  const sql = 'select * from department where name = ?';
  db.query(sql, req.body.name, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    if (results.length > 0) {
      return res.cc('部门名被占用，请更换其他部门！');
    }
    const insertSql = "insert into department set ?";

    db.query(insertSql, {
      name: req.body.name
    }, (err, results) => {
      // 执行 SQL 语句失败
      if (err) return res.cc(err);
      // SQL 语句执行成功，但影响行数不为 1
      if (results.affectedRows !== 1) {
        return res.send({ status: 1, message: '部门增加失败，请稍后再试！' })
      }
      // 部门增加成功
      res.send({ status: 0, message: '部门增加成功！' })
    })
  })

}
// 删除部门
exports.deleteDepartment = (req, res) => {
  const sql = "delete from department where id =? ";
  db.query(sql, [req.body.id], (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    // SQL 语句执行成功，但影响行数不为 1
    if (results.affectedRows !== 1) {
      return res.send({ status: 1, message: '删除部门失败，请稍后再试！' })
    }
    // 删部门成功
    res.send({ status: 0, message: '部门删除成功！' })
  })
}



// 获取产品类型列表
exports.getProductType = (req, res) => {
  const sql = "select * from productType";
  db.query(sql, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    res.send({
      // 状态
      status: 0,
      message: '获取数据成功',
      data: results
    })
  })
}

// 增加产品类型
exports.addProductType = (req, res) => {
  const sql = 'select * from productType where name = ?';
  db.query(sql, req.body.name, (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    if (results.length > 0) {
      return res.cc('产品类型名被占用，请更换其他产品类型！');
    }
    const insertSql = "insert into productType set ?";

    db.query(insertSql, {
      name: req.body.name
    }, (err, results) => {
      // 执行 SQL 语句失败
      if (err) return res.cc(err);
      // SQL 语句执行成功，但影响行数不为 1
      if (results.affectedRows !== 1) {
        return res.send({ status: 1, message: '产品类型增加失败，请稍后再试！' })
      }
      // 产品类型增加成功
      res.send({ status: 0, message: '产品类型增加成功！' })
    })
  })

}
// 删除产品类型
exports.deleteProductType = (req, res) => {
  const sql = "delete from productType where id =? ";
  db.query(sql, [req.body.id], (err, results) => {
    // 执行 SQL 语句失败
    if (err) return res.cc(err);
    // SQL 语句执行成功，但影响行数不为 1
    if (results.affectedRows !== 1) {
      return res.send({ status: 1, message: '删除产品类型失败，请稍后再试！' })
    }
    // 删产品类型成功
    res.send({ status: 0, message: '产品类型删除成功！' })
  })
}
